<?php
// +----------------------------------------------------------------------
// | 幕小铺
// +----------------------------------------------------------------------
// | 版权所有 2016~2020 幕小铺科技（大连）有限公司
// +----------------------------------------------------------------------
// | 2020/06/02
// +----------------------------------------------------------------------

namespace app\erp\admin;

use app\admin\controller\Admin;
use think\Db;
use app\common\builder\ZBuilder;
/**
 * vip会员管理
 * @package app\cms\admin
 */
class VipType extends Admin
{
    /**
     * 首页
     * @author  dou<51779987@qq.com>
     * @return mixed
     */
    public function index()
    {
        cookie('__forward__', $_SERVER['REQUEST_URI']);
        //获取筛选
        $map = $this->getMap();
        //数据获取
        $data = input();
        //数据列表
        $data_list = model('ErpVipType', 'model') -> where($map) -> order('sort asc') -> paginate();

        // 使用ZBuilder快速创建数据表格
        return ZBuilder::make('table')
            ->setPageTitle('vip管理') // 设置页面标题
            ->setPrimaryKey('id') // 设置主键名为id
            ->setTableName('erp_member_vip_type') // 设置数据表名
            ->addColumns([ // 批量添加列
                // ['__INDEX__', '序号'],
                ['id', 'vipID'],
                ['vip_name', 'vip类型名', 'text.edit'],
                ['vip_original_price', '会员原价', 'text.edit'],
                ['vip_discount_price', '会员折扣价', 'text.edit'],
                ['month', '开通月数'],
                ['sort', '排序', 'text.edit'],
                ['create_time', '创建时间', 'datetime'],
                ['update_time', '修改时间', 'datetime'],
                // ['store_status', '状态', 'switch'],
                ['right_button', '操作', 'btn']
            ])
			->setSearchArea([
				['text', 'id', 'vipID'],
                ['text', 'vip_name', 'vip类型名', 'like'],
                /*['text', 'vip_original_price', '会员原价', '='],
                ['text', 'vip_discount_price', '会员折扣价', '='],*/
                ['text', 'month', '开通月数', '='],
            ])
            ->addTopButton('add', '', ['area' => ['50%', '80%']]) // 添加授权按钮
            ->addRightButton('edit', '', ['area' => ['50%', '80%']]) // 批量添加右侧按钮
            ->addRightButton('delete') // 批量添加右侧按钮
            ->setRowList($data_list) // 设置表格数据
            ->fetch(); // 渲染页面

    }

    /**
     * 添加
     * @author  dou<51779987@qq.com>
     * @return mixed
     * @throws \think\Exception
     */
    public function add(){
        // 保存数据
        if ($this->request->isPost()) {
            //数据接收
            $data = $this->request->post();
            $user_id=$data["user_id"]= intval(isset($data["user_id"]) ? $data["user_id"] : 1);//操作用户ID
            $vip_name    	    = isset($data["vip_name"]) ? $data["vip_name"] : '';//vip类型名称
            $vip_original_price = isset($data["vip_original_price"]) ? $data["vip_original_price"] : '';//vip原始价格
            $vip_discount_price = isset($data["vip_discount_price"]) ? $data["vip_discount_price"] : '';//vip折扣价
            $month    	        = isset($data["month"]) ? $data["month"] : '';//开通月数
            $sort    	        = intval(isset($data["sort"]) ? $data["sort"] : 100);

            //数据验证
            $Validate = validate('VipType', 'validate');
            if( !$Validate -> scene('vip_type_add') -> check($data) ){
                $this->error($Validate -> getError());
            }

            $rel = controller('VipTypelogic', 'logic') -> add($user_id, $vip_name, $vip_original_price, $vip_discount_price, $month, $sort);
            if($rel['code'] == 200){
                $this->success('新增成功', '', '_parent_reload');
            }else{
                $this->error($rel['message']);
            }

        }

        // 使用ZBuilder快速创建表单
        return ZBuilder::make('form')
            ->setPageTitle('新增vip信息') // 设置页面标题
            ->addFormItems([ // 批量添加表单项
                ['text', 'vip_name', 'vip名称','必填'],
                ['text','vip_original_price', '会员原价', '请输入会员折扣价'],
                ['text', 'vip_discount_price', '会员折扣价', '请输入会员折扣价'],
                ['text', 'month', '开通月数','请输入开通月数']
            ])
            ->addText('sort', '排序', '', 100)
            ->fetch();
    }

    /**
     * 编辑
     * @param null $id vipid
     * @author dou <51779987@qq.com>
     * @return mixed
     * @throws \think\Exception
     */
    public function edit($id = null)
    {
        if ($id === null) $this->error('缺少参数');
        // 保存数据
        if ($this->request->isPost()) {
            $data = $this->request->post();
            $data['id'] = $id;
            $user_id=$data["user_id"]= intval(isset($data["user_id"]) ? $data["user_id"] : 1);//操作用户ID
            $vip_name    	    = isset($data["vip_name"]) ? $data["vip_name"] : '';//vip类型名称
            $vip_original_price = isset($data["vip_original_price"]) ? $data["vip_original_price"] : '';//vip原始价格
            $vip_discount_price = isset($data["vip_discount_price"]) ? $data["vip_discount_price"] : '';//vip折扣价
            $month    	        = isset($data["month"]) ? $data["month"] : '';//开通月数
            $sort    	        = intval(isset($data["sort"]) ? $data["sort"] : 100);


            //数据验证
            $Validate = validate('VipType', 'validate');
            if( !$Validate -> scene('vip_type_edit') -> check($data) ){
                $this->error($Validate -> getError());
            }

            $rel = controller('VipTypelogic', 'logic') -> edit($user_id,$id, $vip_name, $vip_original_price, $vip_discount_price, $month, $sort);

            if($rel['code'] == 200){
                $this->success('编辑成功', '', '_parent_reload');
            }else{
                $this->error($rel['message']);
            }

        }

        $info = model('ErpVipType', 'model') -> find($id);

        // 使用ZBuilder快速创建表单
        return ZBuilder::make('form')
            ->setPageTitle('编辑vip')
            ->addFormItems([
                ['text', 'vip_name', 'vip名称','必填'],
                ['text','vip_original_price', '会员原价', '请输入会员折扣价'],
                ['text', 'vip_discount_price', '会员折扣价', '请输入会员折扣价'],
                ['text', 'month', '开通月数','请输入开通月数']
            ])
            ->addText('sort', '排序')
            ->setFormData($info)
            ->fetch();
    }


}